package br.com.pfc.application.controller.atendimentos;

import br.com.pfc.application.controller.BaseController;
import br.com.pfc.application.dao.AtendimentoDAO;
import br.com.pfc.application.exceptions.BusinessException;
import br.com.pfc.model.Atendimento;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.End;
import org.jboss.seam.annotations.FlushModeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 *
 * @author mucceli
 */
@Name("atendimentoExcluirAction")
@Scope(ScopeType.SESSION)
public class AtendimentoExcluirController extends BaseController{

    @In
    AtendimentoDAO atendimentoDAO;
    private Atendimento atendimento;

    @Begin(flushMode = FlushModeType.MANUAL, join = true)
    public String setup(Atendimento atendimentoSelecionado) {
        atendimento = atendimentoSelecionado;
        return null;
    }

    @End
    public String excluir(AtendimentoPesquisarController action) {
        try {
            atendimentoDAO.excluir(atendimento);
            action.getListaAtendimentos();
            adicionarMensagemInformacao("Chamado excluído com sucesso!");
        } catch (Exception be) {
            adicionarMensagemErro("Erro ao excluir o chamado: " + be.getMessage());
        }

        return null;
    }

    @End
    public String cancelar() throws Exception {
        try {
            atendimentoDAO.cancelar();
        } catch (BusinessException be) {
            adicionarMensagemErro("Erro ao cancelar: " + be.getMessage());
        }
        return null;
    }

    public Atendimento getAtendimento() {
        return atendimento;
    }

    public void setAtendimento(Atendimento atendimento) {
        this.atendimento = atendimento;
    }

}
